package com.itany.corejava.code17_设计模式.静态代理;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author Miss Chen
 * @version 1.0
 * @date 2024年08月13日15:10
 * 代理类，对目标方法做一些额外处理，但是这些处理不允许改变原有的结果
 */
public class UserServiceProxy implements UserService{
    private UserService userService=new UserServiceImpl();
    @Override
    public String register(String username, String password, String phone, String address) {
        System.out.println("静态代理：在"+new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date())+"即将执行register方法");

        //执行目标方法
        String result=userService.register(username,password,phone,address);
        System.out.println("静态代理:在"+new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date())+"成功执行register方法");
        // 对于代理方法而言，不允许改变原有目标方法的结构，因为返回值为目标方法的返回值
        return result;
    }

    @Override
    public String login(String username, String password) {
        System.out.println("静态代理:在"+new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date())+"即将执行login方法");
        //执行目标方法
        String result=userService.login(username,password);
        System.out.println("静态代理:在"+new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date())+"成功执行login方法");
        // 对于代理方法而言，不允许改变原有目标方法的结构，因为返回值为目标方法的返回值
        return result;
    }
}
